//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------


#ifndef IMAGE_H
#define IMAGE_H


//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
class CImage {

//-----------------------------------------------------------------------------
protected:

  /// largura da imagem
  int m_nWidth;

  /// altura da imagem
  int m_nHeight;

  /// imagem
  void *m_pvImage;

  /// bits per pixel
  int m_nBPP;

  /// quantidade de canais de cor da imagem
  int m_nColorChannels;

//-----------------------------------------------------------------------------
protected:

  /// load a targa file
  bool LoadTarga(const char *pszFilename);

  /// load a png file
  bool LoadPNG(const char *pszFilename);

//-----------------------------------------------------------------------------
public:

  /// constructor
  CImage();

  /// destructor
  ~CImage();

  /// inicializa a classe
  bool Init();

  /// carrega um arquivo do disco
  bool Load(const char *pszFilename);

  /// retorna a largura da imagem
  int GetWidth() { return m_nWidth; }

  /// retorna a altura da imagem
  int GetHeight() { return m_nHeight; }

  /// imagem
  void *GetImage() { return m_pvImage; }

  /// retorna a quantidade de bits per pixel
  int GetBPP() { return m_nBPP; }

  /// retorna quantidade de canais de cor da imagem
  int GetChannels() { return m_nColorChannels; }

};



#endif //IMAGE_H
